gcd.test.js
thoward37@gmail.com/shirt[create-new-file-named-gcd-js-appropriate] / gcd.test.js
@ 9a3429bb
Download
Ladder Summary
- file Add Euclidean GCD implementation with comprehensive tests
import { test, describe } from "node:test";
import { strict as assert } from "node:assert";
import { gcd } from "./gcd.js";
describe("gcd function", () => {
test("positive integers", () => {
assert.strictEqual(gcd(48, 18), 6);
assert.strictEqual(gcd(270, 192), 6);
assert.strictEqual(gcd(100, 25), 25);
});
test("zero arguments", () => {
assert.strictEqual(gcd(0, 0), 0);
assert.strictEqual(gcd(0, 5), 5);
assert.strictEqual(gcd(7, 0), 7);
});
test("negative numbers", () => {
assert.strictEqual(gcd(-48, 18), 6);
assert.strictEqual(gcd(48, -18), 6);
assert.strictEqual(gcd(-48, -18), 6);
assert.strictEqual(gcd(-100, 25), 25);
});
test("co-prime numbers", () => {
assert.strictEqual(gcd(13, 17), 1);
assert.strictEqual(gcd(-13, 17), 1);
});
test("same numbers", () => {
assert.strictEqual(gcd(42, 42), 42);
assert.strictEqual(gcd(-42, -42), 42);
});
});